package top.someapp.dxf2dsvg.entity;

import top.someapp.dxf2dsvg.base.Point;
import top.someapp.dxf2dsvg.dxf.Item;

import javax.annotation.Nonnull;

/**
 * autocad 中的“图元”或“实体”, 目前仅实现autocad中的一部分图元(2d)
 *
 * @author zwz
 * Created on 2020-04-19
 * @see <a href="http://help.autodesk.com/view/OARX/2018/CHS/?guid=GUID-7D07C886-FD1D-4A0C-A7AB-B4D21F18E484">
 * 适用于图形对象的图元组码。
 * 这些代码可以在 DXF™ 文件的 ENTITIES 区域中找到，并且由 AutoLISP ® 和 ObjectARX ® 应用程序在图元定义列表中使用。</a>
 */
public interface Entity {
    /**
     * @return 图元类型，如：ARC，LINE等
     */
    String type();

    /**
     * @return 基点
     */
    Point getBasePoint();

    void setBasePoint(@Nonnull Point basePoint);

    void setup(@Nonnull Item item);
}
